#include "popcount.h"

/* 16 bit / 65536 entry lookup table */
static char lut[] = {
     0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4,
     1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5,
     1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5,
     2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
     1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5,
     2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
     2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5,
     2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
     2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5,
     2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
     2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5,
     2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
     2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5,
     2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
     2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5,
     2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
     2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5,
     2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
     2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5,
     2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
     2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
    10,11,11,12,11,12,12,13,11,12,12,13,12,13,13,14,
     1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5,
     2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
     2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
    10,11,11,12,11,12,12,13,11,12,12,13,12,13,13,14,
     2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
    10,11,11,12,11,12,12,13,11,12,12,13,12,13,13,14,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
    10,11,11,12,11,12,12,13,11,12,12,13,12,13,13,14,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
    10,11,11,12,11,12,12,13,11,12,12,13,12,13,13,14,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
    10,11,11,12,11,12,12,13,11,12,12,13,12,13,13,14,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
    10,11,11,12,11,12,12,13,11,12,12,13,12,13,13,14,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
    10,11,11,12,11,12,12,13,11,12,12,13,12,13,13,14,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
    10,11,11,12,11,12,12,13,11,12,12,13,12,13,13,14,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
    10,11,11,12,11,12,12,13,11,12,12,13,12,13,13,14,
    10,11,11,12,11,12,12,13,11,12,12,13,12,13,13,14,
    11,12,12,13,12,13,13,14,12,13,13,14,13,14,14,15,
     1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5,
     2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
     2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
    10,11,11,12,11,12,12,13,11,12,12,13,12,13,13,14,
     2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
    10,11,11,12,11,12,12,13,11,12,12,13,12,13,13,14,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
    10,11,11,12,11,12,12,13,11,12,12,13,12,13,13,14,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
    10,11,11,12,11,12,12,13,11,12,12,13,12,13,13,14,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
    10,11,11,12,11,12,12,13,11,12,12,13,12,13,13,14,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
    10,11,11,12,11,12,12,13,11,12,12,13,12,13,13,14,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
    10,11,11,12,11,12,12,13,11,12,12,13,12,13,13,14,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
    10,11,11,12,11,12,12,13,11,12,12,13,12,13,13,14,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
    10,11,11,12,11,12,12,13,11,12,12,13,12,13,13,14,
    10,11,11,12,11,12,12,13,11,12,12,13,12,13,13,14,
    11,12,12,13,12,13,13,14,12,13,13,14,13,14,14,15,
     2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
    10,11,11,12,11,12,12,13,11,12,12,13,12,13,13,14,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
    10,11,11,12,11,12,12,13,11,12,12,13,12,13,13,14,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
    10,11,11,12,11,12,12,13,11,12,12,13,12,13,13,14,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
    10,11,11,12,11,12,12,13,11,12,12,13,12,13,13,14,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
    10,11,11,12,11,12,12,13,11,12,12,13,12,13,13,14,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
    10,11,11,12,11,12,12,13,11,12,12,13,12,13,13,14,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
    10,11,11,12,11,12,12,13,11,12,12,13,12,13,13,14,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
    10,11,11,12,11,12,12,13,11,12,12,13,12,13,13,14,
    10,11,11,12,11,12,12,13,11,12,12,13,12,13,13,14,
    11,12,12,13,12,13,13,14,12,13,13,14,13,14,14,15,
     3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
    10,11,11,12,11,12,12,13,11,12,12,13,12,13,13,14,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
    10,11,11,12,11,12,12,13,11,12,12,13,12,13,13,14,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
    10,11,11,12,11,12,12,13,11,12,12,13,12,13,13,14,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
    10,11,11,12,11,12,12,13,11,12,12,13,12,13,13,14,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
    10,11,11,12,11,12,12,13,11,12,12,13,12,13,13,14,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
    10,11,11,12,11,12,12,13,11,12,12,13,12,13,13,14,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
    10,11,11,12,11,12,12,13,11,12,12,13,12,13,13,14,
    10,11,11,12,11,12,12,13,11,12,12,13,12,13,13,14,
    11,12,12,13,12,13,13,14,12,13,13,14,13,14,14,15,
     4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
    10,11,11,12,11,12,12,13,11,12,12,13,12,13,13,14,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
    10,11,11,12,11,12,12,13,11,12,12,13,12,13,13,14,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
    10,11,11,12,11,12,12,13,11,12,12,13,12,13,13,14,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
    10,11,11,12,11,12,12,13,11,12,12,13,12,13,13,14,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
    10,11,11,12,11,12,12,13,11,12,12,13,12,13,13,14,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
    10,11,11,12,11,12,12,13,11,12,12,13,12,13,13,14,
    10,11,11,12,11,12,12,13,11,12,12,13,12,13,13,14,
    11,12,12,13,12,13,13,14,12,13,13,14,13,14,14,15,
     5, 6, 6, 7, 6, 7, 7, 8, 6, 7, 7, 8, 7, 8, 8, 9,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
    10,11,11,12,11,12,12,13,11,12,12,13,12,13,13,14,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
    10,11,11,12,11,12,12,13,11,12,12,13,12,13,13,14,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
    10,11,11,12,11,12,12,13,11,12,12,13,12,13,13,14,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
    10,11,11,12,11,12,12,13,11,12,12,13,12,13,13,14,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
    10,11,11,12,11,12,12,13,11,12,12,13,12,13,13,14,
    10,11,11,12,11,12,12,13,11,12,12,13,12,13,13,14,
    11,12,12,13,12,13,13,14,12,13,13,14,13,14,14,15,
     6, 7, 7, 8, 7, 8, 8, 9, 7, 8, 8, 9, 8, 9, 9,10,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
    10,11,11,12,11,12,12,13,11,12,12,13,12,13,13,14,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
    10,11,11,12,11,12,12,13,11,12,12,13,12,13,13,14,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
    10,11,11,12,11,12,12,13,11,12,12,13,12,13,13,14,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
    10,11,11,12,11,12,12,13,11,12,12,13,12,13,13,14,
    10,11,11,12,11,12,12,13,11,12,12,13,12,13,13,14,
    11,12,12,13,12,13,13,14,12,13,13,14,13,14,14,15,
     7, 8, 8, 9, 8, 9, 9,10, 8, 9, 9,10, 9,10,10,11,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
    10,11,11,12,11,12,12,13,11,12,12,13,12,13,13,14,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
    10,11,11,12,11,12,12,13,11,12,12,13,12,13,13,14,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
    10,11,11,12,11,12,12,13,11,12,12,13,12,13,13,14,
    10,11,11,12,11,12,12,13,11,12,12,13,12,13,13,14,
    11,12,12,13,12,13,13,14,12,13,13,14,13,14,14,15,
     8, 9, 9,10, 9,10,10,11, 9,10,10,11,10,11,11,12,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
    10,11,11,12,11,12,12,13,11,12,12,13,12,13,13,14,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
    10,11,11,12,11,12,12,13,11,12,12,13,12,13,13,14,
    10,11,11,12,11,12,12,13,11,12,12,13,12,13,13,14,
    11,12,12,13,12,13,13,14,12,13,13,14,13,14,14,15,
     9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
    10,11,11,12,11,12,12,13,11,12,12,13,12,13,13,14,
    10,11,11,12,11,12,12,13,11,12,12,13,12,13,13,14,
    11,12,12,13,12,13,13,14,12,13,13,14,13,14,14,15,
    10,11,11,12,11,12,12,13,11,12,12,13,12,13,13,14,
    11,12,12,13,12,13,13,14,12,13,13,14,13,14,14,15,
    11,12,12,13,12,13,13,14,12,13,13,14,13,14,14,15,
    12,13,13,14,13,14,14,15,13,14,14,15,14,15,15,16
};


int
chemfp_popcount_lut8_1(int n, const unsigned char *fp) {
  int cnt=0;
  int i;
  int top = n-n%2;
  /* I got a 30% performance gain by unrolling */
  for (i=0; i<top; i+=2) {
    cnt += lut[fp[i]<<8 | fp[i+1]];
  }
  if (i != n) {
    cnt += lut[fp[i]];
  }
  return cnt;
}


int
chemfp_intersect_popcount_lut8_1(int n, const unsigned char *fp1, const unsigned char *fp2) {
  int cnt=0;
  int i;
  /* I tried unrolling and using a 16 bit popcount, but saw no time advantage */
  for (i=0; i<n; i++) {
    cnt += lut[fp1[i] & fp2[i]];
  }
  return cnt;
}


int
chemfp_popcount_lut8_4(int n, uint32_t *fp) {
  int cnt=0;
  unsigned int i, value;

  /* Handle even cases where the fingerprint length is not a multiple of 4 */
  n = (n+3) / 4;
  for (i=0; i<n; i++) {
    value = fp[i];
    cnt += lut[value&255];
    cnt += lut[value>>8&255];
    cnt += lut[value>>16&255];
    cnt += lut[value>>24];
  }
  return cnt;
}

int
chemfp_intersect_popcount_lut8_4(int n, uint32_t *fp1, uint32_t *fp2) {
  int cnt=0;
  unsigned int i;
  n = (n+3) / 4;
  do {
    i = *fp1 & *fp2;
    cnt += lut[i&255];
    cnt += lut[i>>8&255];
    cnt += lut[i>>16&255];
    cnt += lut[i>>24];
    fp1++;
    fp2++;
  } while(--n);
  return cnt;
}

/* 16 bit LUT assuming I can fetch 4 bytes at a time */

int
chemfp_popcount_lut16_4(int n, uint32_t *fp) {
  int cnt=0;
  unsigned int i;

  /* Handle even cases where the fingerprint length is not a multiple of 4 */
  n = (n+3) / 4;
  do {
    i = *fp;
    cnt += lut[i&65535];
    cnt += lut[i>>16];
    fp++;
  } while(--n);
  return cnt;
}

int
chemfp_intersect_popcount_lut16_4(int n, uint32_t *fp1, uint32_t *fp2) {
  int cnt=0;
  unsigned int i;
  n = (n+3) / 4;
  do {
    i = *fp1 & *fp2;
    cnt += lut[i&65535];
    cnt += lut[i>>16];
    fp1++;
    fp2++;
  } while(--n);
  return cnt;
}
